# 作业：
# 1、编写一个学生方法，产生一堆学生对象（姓名），传入形参控制学生生成数量
"""
def student_information(n):
    list1 = []
    for i in range(n):
        name = input("请你输入学生姓名")
        list1.append(name)
    return list1
print(student_information(2))
"""
# 2、创建一个方法，用来生成普通人必备的信息：姓名、年龄、住址、身份证号、手机号，随机生成20个写入personinfo.txt里
# 格式：姓名：xxx  年龄：xxx 住址：xxx 身份证号：xxx
"""
from faker import Faker
import random
def Essential_information(i):
    framework=[]
    for _ in range(i):
       fake1 = Faker(locale='zh_cn') # 支持中国
       name = fake1.name() #生成名字
       age =  random.randint(0, 200) #随机年龄0-200之间
       address = fake1.address() # 生成随机地址
       id_number = fake1.ssn(min_age=0,max_age=200) #生成身份证号
       phone_number = fake1.phone_number() #生成11位电话号
       person_information = f"姓名：{name}  年龄：{age}  住址：{address}  身份证号：{id_number}  手机号：{phone_number}"
       framework.append(person_information)
    return framework
def inf(file_path,data):
     with open(file_path, 'w', encoding='utf-8') as file:
        for item in data:
            file.write(item + '\n')
persion_info = Essential_information(5)

write_to_file('personinfo.txt',persion_info)
"""
# 3、文本 student.txt中包含下面的内容
# zhangshan:30
# lisi:50
# wangwu:60
# lifei:70
# 期望能够统计出其中的内容，以dict的形式保存，例如：
# {"zhangshan":30,"lisi":50,"wangwu":60,"lifei":70}
"""student_dict={}
with open('student.txt','w',encoding='utf-8') as f:
    f.write("zhangshan:30\nlisi:50\nwangwu:60\nlifei:70")
with open('student.txt','r',encoding='utf-8') as f:
    for line in f:
        name, score = line.strip().split(':') #line.strip()删除前后空格
        score = int(score)  
        student_dict[name] = score # 将学生的姓名作为键，分数作为值，存入字典。
    print(student_dict)
"""
# 4、给你一个 非空 整数数组 nums ，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
"""def non_empty_num(nums):
    unique_nums = []
    for a in nums:
        if nums.count(a) == 1:
            unique_nums.append(a)
    return unique_nums
print(non_empty_num([4, 4, 2, 1, 3, 55, 66, 66, 55]))
"""
# 5、输入：["1","a","b","3","5","8","_"] 想要提取里面得数字，并保存到一个列表中
"""
input_list = ["1", "a", "b", "3", "5", "8", "_"]
numbers_list = []
for num in input_list:
    if num.isdigit():#分辨是不是数字
        numbers_list.append(num)
print(numbers_list)
"""
# 6、写函数,函数接收的4个参数分别是:姓名,性别(默认为男),年龄,地址
# 用户通过input输入这4个内容(支持持续输入,Q或q退出),并传递给函数
# 函数接收到这些内容,将其追加到student_msg文件中
# 重点:复习文件操作
"""
def create_person(name=None, gender='男', age=None, address=None):
    if name is None:
        name = input("请输入姓名: ")
    while True:
        sex = input("请输入性别(Q/q退出): ")
        if sex.lower() == 'q':
            break
        elif sex not in ['男', '女']:
            print("无效的性别输入，请重新输入")
        else:
            gender = sex
            break
            
    if age is None:
        age = input("请输入年龄: ")

    if address is None:
        address = input("请输入地址: ")

    person_info = {
        '姓名': name,
        '性别': gender,
        '年龄': age,
        '地址': address
    }
    with open('create_person.txt', 'w', encoding='utf-8') as f:
        f.write(f'姓名: {person_info["姓名"]}\n性别: {person_info["性别"]}\n年龄: {person_info["年龄"]}\n地址: {person_info["地址"]}\n')
    return person_info

create_person()
"""
#  7、打印功能菜单、添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统，并且需要接收用户的输入，在根据输入内容调用相应函数实现相应功能（存入文件），模板图如下。每次对学生管理系统发生改动，要写入改动点到log.txt文本中
"""
a=[]
while True:
    print("1.添加学生信息")
    print("2.删除学生信息")
    print("3.修改学生信息")
    print("4.显示学生信息")
    print("0.退出系统")
    an = input("请输入功能序号：")
    if an == "1":
        add_name = input("请输入要添加学生姓名:")
        if add_name not in a:
            a.append(add_name)
            with open('student_msg','w',encoding='utf-8')as f:
                for i in a:
                    f.write(i+'\n')
        else:
            print("您要添加的学生已存在！")
            print("本次添加失败！")
    elif an == "2":
        delete_name = input("请输入要删除的学生姓名：")
        if delete_name in a:
            a.remove(delete_name)
            with open('student_msg','w',encoding='utf-8')as f:
                    f.write(i+'\n')
        else:
            print("您要删除的学生不存在！")
            print("本次删除失败！")
    elif an == "3":
        change_oldname = input("请输入要修改之前的学习姓名：")
        change_newname = input("请输入修改之后的姓名：")
        if change_oldname in a:
            a.remove(change_oldname)
            a.append(change_newname)
            with open('student_msg','w',encoding='utf-8')as f:
                    f.write(i+'\n')
        else:
            print("您要修改的学生不存在！")
            print("本次修改失败！")
    elif an == "4":
        with open('student_msg', 'r', encoding='utf-8') as f:
            print(f.read())
    elif an == "0":
        print("退出信息系统！")
        break
"""
# 8、如今的社交软件层出不穷，虽然功能千变万化，但都具有好友管理系统的基本功能，包括添加好友、删除好友、备注好友、展示好友等。下面是一个简单的好友管理系统的功能菜单（存入文件）
# 好友管理系统中有5个功能，每个功能都对应一个序号，用户可根据提示“请输入您的选项”选择序号执行相应的操作，包括：
# 添加好友：用户根据提示“请输入要添加的好友：”输入要添加好友的姓名，添加后会提示“好友添加成功”。
# 删除好友：用户根据提示“请输入删除好友姓名：”输入要删除好友的姓名，删除后提示“删除成功”。
# 备注好友：用户根据提示“请输入要修改的好友姓名：”和“请输入修改后的好友姓名：”分别输入修改前和修改后的好友姓名，修改后会提示“备注成功”。
# 展示好友：若用户还没有添加过好友，提示“好友列表为空”，否则返回每个好友的姓名。
# 退出：关闭好友管理系统。
# 本任务要求编写程序，模拟实现如上所述的好友管理系统。
# 文件读取要使用相对路径，确保在任何的电脑、终端都可以运行
"""friend_list = []
def friend_system():
    while True:
        print("=============================")
        print("好友管理系统")
        print("1.添加好友")
        print("2.删除好友")
        print("3.修改好友")
        print("4.显示好友")
        print("0.退出系统")
        fs = input("请输入您要选择的功能")
        if fs == "1":
            friend_name = input("请输入您要添加的好友姓名")
            if friend_name not in friend_list:
                friend_list.append(friend_name)
                with open('friend.txt','w',encoding='utf-8') as f:
                    for i in friend_list:
                        f.write(i+ "\n")

                print(f"您添加{friend_name}好友成功！")
            else:
                print("您要添加的好友已存在！")
                print("本次添加失败！")
        elif fs == "2":
            friend_name = input("请输入您要删除的好友姓名")
            if friend_name in friend_list:
                friend_list.remove(friend_name)
                print(f"删除{friend_name}学生信息成功！")
                with open('friend.txt','w',encoding='utf-8') as f:
                    f.write(i+ "\n")
            else:
                print("您要删除的好友不存在！")
                print("本次删除失败！")
        elif fs == "3":
            friend_old_name = input("请输入您要修改的好友姓名")
            friend_new_name = input("请输入新的好友姓名")
            if friend_old_name in friend_list:
                friend_list.remove(friend_old_name)
                friend_list.append(friend_new_name)
                print(f"修改{friend_old_name}好友名字成功！现在的名字为：{friend_new_name}")
                with open('friend.txt','w',encoding='utf-8') as f:
                    f.write(i+ "\n")
            else:
                print("您要修改的好友不存在！")
                print("本次修改失败！")
        elif fs == "4":
            print("全部的好友信息为：")
            with open('friend.txt', 'r', encoding='utf-8') as f:
                print(f.read())
        elif fs == "0":
            print("退出好友管理系统！")
            print("欢迎您下次再来！")
            break
friend_system()
"""